package com.hyt.it.ogt.ykcj.domain.grade;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hyt.it.ogt.ykcj.common.annotation.Excel;
import com.hyt.it.ogt.ykcj.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * 考生成绩信息对象 examinee_grade_info
 *
 * @author admin
 * @date 2021-06-21
 */
public class ExamineeGradeInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 考生成绩信息id
     */
    private String gradeId;

    /**
     * 考试id
     */
    @Excel(name = "考试id")
    private String examId;

    /**
     * 档案编号
     */
    @Excel(name = "档案编号")
    private String archivesNo;

    /**
     * 报名序号
     */
    @Excel(name = "报名序号")
    private String registrationNo;

    /**
     * 考生名字
     */
    @Excel(name = "考生名字")
    private String examineeName;

    /**
     * 考生性别
     */
    @Excel(name = "考生性别")
    private String examineeSex;

    /**
     * 考生年龄
     */
    @Excel(name = "考生年龄")
    private int examineeAge;


    /**
     * 科目序号
     */
    @Excel(name = "科目序号")
    private String subjectNo;


    /**
     * 考生证件类型
     */
    @Excel(name = "考生证件类型")
    private String examineeIdType;

    /**
     * 考生证件号码
     */
    @Excel(name = "考生证件号码")
    private String examineeIdCode;

    /**
     * 级别代码
     */
    @Excel(name = "级别代码")
    private String levelCode;

    /**
     * 专业代码
     */
    @Excel(name = "专业代码")
    private String professionCode;

    /**
     * 是否已归档,默认否。Y-已归档，N-未归档
     */
    @Excel(name = "是否已归档,默认否。Y-已归档，N-未归档")
    private String archivedStatus;

    /**
     * 预留字段1
     */
    @Excel(name = "预留字段1")
    private String reserveField1;

    /**
     * 全科通过年份
     */
    @Excel(name = "全科通过年份")
    private String passYear;

    /**
     * 预留字段2
     */
    @Excel(name = "预留字段2")
    private String reserveField2;

    /**
     * 全科通过标记
     */
    @Excel(name = "全科通过标记")
    private String passFlag;

    /**
     * 预留字段3
     */
    @Excel(name = "预留字段3")
    private String reserveField3;

    /**
     * 地区
     */
    @Excel(name = "地区")
    private String area;

    /**
     * 归档时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "归档时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date archivedDate;

    /**
     * 合格日期
     */
    @Excel(name = "合格日期")
    private String passDate;

    public void setGradeId(String gradeId) {
        this.gradeId = gradeId;
    }

    public String getGradeId() {
        return gradeId;
    }

    public void setExamId(String examId) {
        this.examId = examId;
    }

    public String getExamId() {
        return examId;
    }

    public void setArchivesNo(String archivesNo) {
        this.archivesNo = archivesNo;
    }

    @NotBlank(message = "档案号不能为空")
    public String getArchivesNo() {
        return archivesNo;
    }

    public void setRegistrationNo(String registrationNo) {
        this.registrationNo = registrationNo;
    }

    public String getRegistrationNo() {
        return registrationNo;
    }

    public void setExamineeName(String examineeName) {
        this.examineeName = examineeName;
    }

    @NotBlank(message = "考生姓名不能为空")
    public String getExamineeName() {
        return examineeName;
    }

    public void setExamineeSex(String examineeSex) {
        this.examineeSex = examineeSex;
    }

    @NotBlank(message = "性别不能为空")
    public String getExamineeSex() {
        return examineeSex;
    }

    public void setExamineeIdType(String examineeIdType) {
        this.examineeIdType = examineeIdType;
    }


    public int getExamineeAge() {
        return examineeAge;
    }

    public void setExamineeAge(int examineeAge) {
        this.examineeAge = examineeAge;
    }

    public String getSubjectNo() {
        return subjectNo;
    }

    public void setSubjectNo(String subjectNo) {
        this.subjectNo = subjectNo;
    }

    @NotBlank(message = "证件类型不能为空")
    public String getExamineeIdType() {
        return examineeIdType;
    }

    public void setExamineeIdCode(String examineeIdCode) {
        this.examineeIdCode = examineeIdCode;
    }

    @NotBlank(message = "证件号码不能为空")
    public String getExamineeIdCode() {
        return examineeIdCode;
    }

    public void setLevelCode(String levelCode) {
        this.levelCode = levelCode;
    }

    public String getLevelCode() {
        return levelCode;
    }

    public void setProfessionCode(String professionCode) {
        this.professionCode = professionCode;
    }

    public String getProfessionCode() {
        return professionCode;
    }

    public void setArchivedStatus(String archivedStatus) {
        this.archivedStatus = archivedStatus;
    }

    public String getArchivedStatus() {
        return archivedStatus;
    }

    public void setReserveField1(String reserveField1) {
        this.reserveField1 = reserveField1;
    }

    public String getReserveField1() {
        return reserveField1;
    }

    public void setPassYear(String passYear) {
        this.passYear = passYear;
    }

    public String getPassYear() {
        return passYear;
    }

    public void setReserveField2(String reserveField2) {
        this.reserveField2 = reserveField2;
    }

    public String getReserveField2() {
        return reserveField2;
    }

    public void setPassFlag(String passFlag) {
        this.passFlag = passFlag;
    }

    public String getPassFlag() {
        return passFlag;
    }

    public void setReserveField3(String reserveField3) {
        this.reserveField3 = reserveField3;
    }

    public String getReserveField3() {
        return reserveField3;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String getArea() {
        return area;
    }

    public void setArchivedDate(Date archivedDate) {
        this.archivedDate = archivedDate;
    }

    public Date getArchivedDate() {
        return archivedDate;
    }

    public String getPassDate() {
        return passDate;
    }

    public void setPassDate(String passDate) {
        this.passDate = passDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("gradeId", getGradeId())
                .append("examId", getExamId())
                .append("archivesNo", getArchivesNo())
                .append("registrationNo", getRegistrationNo())
                .append("examineeName", getExamineeName())
                .append("examineeSex", getExamineeSex())
                .append("subjectNo", getSubjectNo())
                .append("examineeIdType", getExamineeIdType())
                .append("examineeIdCode", getExamineeIdCode())
                .append("levelCode", getLevelCode())
                .append("professionCode", getProfessionCode())
                .append("archivedStatus", getArchivedStatus())
                .append("reserveField1", getReserveField1())
                .append("passYear", getPassYear())
                .append("reserveField2", getReserveField2())
                .append("passFlag", getPassFlag())
                .append("reserveField3", getReserveField3())
                .append("area", getArea())
                .append("archivedDate", getArchivedDate())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
